package com.ybkj.o2o.zhuanche.entity;

import com.ybkj.o2o.zhuanche.common.json.DateTimeJsonSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 专车订单汇总.
 */
public class OrderFinishedInfo extends Base {

  private static final long serialVersionUID = 1L;

  public static final int TYPE_ORDERFINISHEDAMOUNT_THIS = 1;// "本公司订单并且由本公司服务人员完成单量";

  public static final int TYPE_ORDERBUSYAMOUNT_THIS = 2;// "本公司订单并且是本公司服务人员正在执行中单量(包括预派单)";

  public static final int TYPE_ORDERFINISHEDAMOUNT_GETOUT = 3;// "本公司订单并且是由其他公司服务人员完成单量";

  public static final int TYPE_ORDERBUSYAMOUNT_GETOUT = 4;// "本公司订单并且是其他公司服务人员正在执行中单量(包括预派单)";

  public static final int TYPE_ORDERCANCELEDAMOUNT = 5;// "订单销单量";

  public static final int TYPE_ORDERFINISHEDAMOUNT_COMEIN = 6;// "其他公司订单并且是由本公司服务人员完成单量";

  public static final int TYPE_ORDERBUSYAMOUNT_COMEIN = 7;// "其他公司订单并且是本公司服务人员执行单量";



  private Long companyId;// 公司id

  private String companyName;// 公司名称

  private Integer type;// 类型

  private String queryTime;

  private BigDecimal orderNumber;// 单量

  private BigDecimal oderTotalMoney;// 订单总金额

  private BigDecimal couponMoney;// 优惠劵金额

  private BigDecimal cashMoney;// 现金金额

  private BigDecimal signMoney;// 签单金额

  private BigDecimal balanceMoney;// 支付金额

  private BigDecimal alipayMoney;// 支付宝金额

  private BigDecimal weixinMoney;// 微信金额

  private BigDecimal companyMoney;// 公司收入

  private BigDecimal driverMoney;// 服务人员收入

  private BigDecimal infoFee;// 保险费/信息费

  private BigDecimal wxManagerMoney;// 客户经理收入

  private BigDecimal rebateMoney;// 介绍提成

  private BigDecimal guoluMoney;// 过路费

  private BigDecimal yuanchengMoney;// 远程费

  private BigDecimal otherMoney;// 其他费

  private String appKey;

  @JsonSerialize(using = DateTimeJsonSerializer.class)
  private Date created;
  @JsonSerialize(using = DateTimeJsonSerializer.class)
  private Date updated;

  public String getQueryTime() {
    return queryTime;
  }

  public void setQueryTime(String queryTime) {
    this.queryTime = queryTime;
  }

  public Integer getType() {
    return type;
  }

  public void setType(Integer type) {
    this.type = type;
  }

  public String getAppKey() {
    return appKey;
  }

  public void setAppKey(String appKey) {
    this.appKey = appKey;
  }

  public Long getCompanyId() {
    return companyId;
  }

  public void setCompanyId(Long companyId) {
    this.companyId = companyId;
  }

  public String getCompanyName() {
    return companyName;
  }

  public void setCompanyName(String companyName) {
    this.companyName = companyName;
  }

  public BigDecimal getOrderNumber() {
    return orderNumber;
  }

  public void setOrderNumber(BigDecimal orderNumber) {
    this.orderNumber = orderNumber;
  }

  public BigDecimal getOderTotalMoney() {
    return oderTotalMoney;
  }

  public void setOderTotalMoney(BigDecimal oderTotalMoney) {
    this.oderTotalMoney = oderTotalMoney;
  }

  public BigDecimal getAlipayMoney() {
    return alipayMoney;
  }

  public BigDecimal getCouponMoney() {
    return couponMoney;
  }

  public void setCouponMoney(BigDecimal couponMoney) {
    this.couponMoney = couponMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getCashMoney() {
    if (null == cashMoney) {
      return BigDecimal.ZERO;
    }
    return cashMoney;
  }

  public void setCashMoney(BigDecimal cashMoney) {
    this.cashMoney = cashMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getSignMoney() {
    if (null == signMoney) {
      return BigDecimal.ZERO;
    }
    return signMoney;
  }

  public void setSignMoney(BigDecimal signMoney) {
    this.signMoney = signMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getBalanceMoney() {
    if (null == balanceMoney) {
      return BigDecimal.ZERO;
    }
    return balanceMoney;
  }

  public void setBalanceMoney(BigDecimal balanceMoney) {
    this.balanceMoney = balanceMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getDriverMoney() {
    if (null == driverMoney) {
      return BigDecimal.ZERO;
    }
    return driverMoney;
  }

  public void setDriverMoney(BigDecimal driverMoney) {
    this.driverMoney = driverMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getCompanyMoney() {
    if (null == companyMoney) {
      return BigDecimal.ZERO;
    }
    return companyMoney;
  }

  public void setCompanyMoney(BigDecimal companyMoney) {
    this.companyMoney = companyMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getWxManagerMoney() {
    if (null == wxManagerMoney) {
      return BigDecimal.ZERO;
    }
    return wxManagerMoney;
  }

  public void setWxManagerMoney(BigDecimal wxManagerMoney) {
    this.wxManagerMoney = wxManagerMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getInfoFee() {
    if (null == infoFee) {
      return BigDecimal.ZERO;
    }
    return infoFee;
  }

  public void setInfoFee(BigDecimal infoFee) {
    this.infoFee = infoFee;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getRebateMoney() {
    if (null == rebateMoney) {
      return BigDecimal.ZERO;
    }
    return rebateMoney;
  }

  public void setRebateMoney(BigDecimal rebateMoney) {
    this.rebateMoney = rebateMoney;
  }

  public void setAlipayMoney(BigDecimal alipayMoney) {
    this.alipayMoney = alipayMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getWeixinMoney() {
    if (null == weixinMoney) {
      return BigDecimal.ZERO;
    }
    return weixinMoney;
  }

  public void setWeixinMoney(BigDecimal weixinMoney) {
    this.weixinMoney = weixinMoney;
  }

  @Override
  public Date getCreated() {
    return created;
  }

  @Override
  public void setCreated(Date created) {
    this.created = created;
  }

  @Override
  public Date getUpdated() {
    return updated;
  }

  @Override
  public void setUpdated(Date updated) {
    this.updated = updated;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getGuoluMoney() {
    if (null == guoluMoney) {
      return BigDecimal.ZERO;
    }
    return guoluMoney;
  }

  public void setGuoluMoney(BigDecimal guoluMoney) {
    this.guoluMoney = guoluMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getYuanchengMoney() {
    if (null == yuanchengMoney) {
      return BigDecimal.ZERO;
    }
    return yuanchengMoney;
  }

  public void setYuanchengMoney(BigDecimal yuanchengMoney) {
    this.yuanchengMoney = yuanchengMoney;
  }

  /**
   * 为空则返回0.
   */
  public BigDecimal getOtherMoney() {
    if (null == otherMoney) {
      return BigDecimal.ZERO;
    }
    return otherMoney;
  }

  public void setOtherMoney(BigDecimal otherMoney) {
    this.otherMoney = otherMoney;
  }

}
